package 双指针;

/**
 * @author admin
 * @version 1.0.0
 * @ClassName 环形链表.java
 * @Description TODO
 * @createTime 2020年10月15日 20:32:00
 */
public class 环形链表 {
    /**
     * Definition for singly-linked list.
     * class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) {
     *         val = x;
     *         next = null;
     *     }
     * }
     * 给定一个链表，判断链表中是否有环。
     *
     * 如果链表中有某个节点，可以通过连续跟踪 next 指针再次到达，则链表中存在环。 为了表示给定链表中的环，我们使用整数 pos 来表示链表尾连接到链表中的位置（索引从 0 开始）。 如果 pos 是 -1，则在该链表中没有环。注意：pos 不作为参数进行传递，仅仅是为了标识链表的实际情况。
     *
     * 如果链表中存在环，则返回 true 。 否则，返回 false 。
     *
     *  
     *
     *
     *
     * 输入：head = [3,2,0,-4], pos = 1
     * 输出：true
     * 解释：链表中有一个环，其尾部连接到第二个节点。
//     */
//    public class Solution {
//        public boolean hasCycle(ListNode head) {
//            if (head == null || head.next == null) {
//                return false;
//            }
//            ListNode fastp = head.next;
//            ListNode slowp = head;
//            while (fastp != null && fastp.next != null) {
//                if (fastp == slowp) {
//                    return true;
//                }
//                fastp = fastp.next.next;
//                slowp = slowp.next;
//            }
//            return false;
//        }
//    }
//
}
